<!DOCTYPE HTML> <html> <head> <title>Sprite Batch</title> <style> body { margin: 0; padding: 0; background-color: #000000; } .rendererView { position: absolute; display: block; width: 100%; height: 100%; } </style> <script src="pixi.js"></script> <script src="../../bin/pixi.dev.js"></script> <script src="NormalMapFilter.js"></script> </head> <body> <script> var viewWidth = 500; var viewHeight = 500; // Create a pixi renderer var renderer = PIXI.autoDetectRenderer(viewWidth, viewHeight); //renderer.view.className = "rendererView"; // add render view to DOM document.body.appendChild(renderer.view); // create an new instance of a pixi stage var stage = new PIXI.Stage(0xFFFFFF); // create a background texture var pondFloorTexture = PIXI.Texture.fromImage("1223-normal.jpg"); // create a new background sprite // var pondFloorSprite = new PIXI.Sprite(pondFloorTexture); //stage.addChild(pondFloorSprite); var filter = new PIXI.NormalMapFilter(pondFloorTexture); var sprite = PIXI.Sprite.fromImage("heineken-names-small-30262.jpg");//(pondFloorTexture); sprite.filters = [filter]; stage.addChild(sprite); var tick = 0; requestAnimationFrame(animate); function animate() { // increment the ticker tick += 0.1; var mouse = stage.interactionManager.mouse //console.log(stage.interactionManager.mouse); filter.uniforms.LightPos.value[0] = mouse.global.x; filter.uniforms.LightPos.value[1] = mouse.global.y; // time to render the state! renderer.render(stage); // request another animation frame.. requestAnimationFrame( animate ); } </script> </body> </html>